package com.zhangxu.microservice.auth.mapstruct;

import com.zhangxu.microservice.auth.biz.dto.CreateSystemDTO;
import com.zhangxu.microservice.auth.biz.dto.SystemDTO;
import com.zhangxu.microservice.auth.biz.dto.UpdateSystemDTO;
import com.zhangxu.microservice.auth.vo.req.CreateSystemReq;
import com.zhangxu.microservice.auth.vo.req.UpdateSystemReq;
import com.zhangxu.microservice.auth.vo.resp.SystemResp;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

/**
 * 系统Web层对象转换接口
 */
@Mapper(componentModel = "spring")
public interface SystemWebConverter {

    /**
     * CreateSystemReq 转 CreateSystemDTO
     *
     * @param createSystemReq 创建系统请求
     * @return 创建系统DTO
     */
    CreateSystemDTO toCreateSystemDTO(CreateSystemReq createSystemReq);

    /**
     * UpdateSystemReq 转 UpdateSystemDTO
     *
     * @param updateSystemReq 更新系统请求
     * @return 更新系统DTO
     */
    @Mapping(target = "id", ignore = true)
    UpdateSystemDTO toUpdateSystemDTO(UpdateSystemReq updateSystemReq);

    /**
     * SystemDTO 转 SystemResp
     *
     * @param systemDTO 系统DTO
     * @return 系统响应
     */
    SystemResp toSystemResp(SystemDTO systemDTO);
}